Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] C++, nie wiem jak zrobić.


Rekomendowane odpowiedzi

Opublikowano

Chcę zrobić tak że gdy wyłączy się program napisany w c++ iksem (X) komputer się wyłączy lub zresetuje. Szukałem w internecie ale nigdzie nie znalazłem, mam nadzieję że mi pomożecie.

Opublikowano

W WinApi jest funkcja: ExitWindowsEx.

Jeżeli jej użycie jest zbyt skomplikowane zawsze można napisać poprostu:

system("shutdown -s");

ale to jest mniej leet :P

 

#chyba sobie to podłożysz do okna?;p

Opublikowano

Raczej nikt nie wciska na klawiaturze "x" aby program zamknąć. Przycisk x wygląda tak:

e7e09c8d6c.png

(na żółto!).

Tak więc dwa sposoby powyżej to nic innego jak spam.

Aby po kliknięciu przycisku oznaczonego na żółto (obrazek powyżej) należy skorzystać z jednej z funkcji WinAPI.

Jak każdy wie pisanie aplikacji okienkowych wymaga nieco szerszego pojęcia na temat jak działa ten system i jakie funkcje oferuje.

Każda aplikacja okienkowa posiada kilka wątków (chyba że jakiś nieogar pisze programy), podstawą jest poprawna synchronizacja.

 

W windowsie po kliknięciu "krzyżyka" program wysyła sygnał CTRL_CLOSE_EVENT z którego można skorzystać mniej-więcej tak:

BOOL WINAPI HandlerRoutine( CTRL_CLOSE_EVENT );

Przy zwróceniu wartości TRUE będzie możliwe wywołanie kolejnej funkcji (np. ExitWindowsEX).

Opublikowano

Zawsze w c++ lepiej. Ale to moje zdanie. Jak pisał cały program w c++ to teraz dla takiej głupiej funkcji przepisywać wszystko na delfi to trochę bez sensu.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...